<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 递归函数 自己调用自己的函数  要有一个程序出口
    // 5的阶乘
    // function jcheng(n) {
    //   if (n == 1) {
    //     return 1
    //   } else {
    //     return n * jcheng(n - 1)
    //   }
    // }
    // console.log(jcheng(5))

    // 递归函数完成深拷贝
    var obj = {
      name: 1,
      age: 2,
      sex: ["男人", "女人", "人妖"],
      city: {
        name: "湖北",
        hot: "武汉"
      }
    }
    var c = obj;
    //浅拷贝
    // var o = {
    // };
    // for (var key in obj) {
    //   o[key] = obj[key]
    // }
    function deepClone(obj) {
      var o = obj instanceof Array ? [] : {} //准备好要克隆的空数组 或空对象
      for (var key in obj) {
        o[key] = typeof obj[key] == "object" ? deepClone(obj[key]) : obj[key];
      }
      return o
    }
    var myobj = deepClone(obj)
    myobj.city.name = "广东";
    console.log(myobj)
    console.log(obj)
  </script>
</body>

</html>